/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				USART
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
void USARTInit(uint16_t ubrr_value) 				//inicializar USART
{	 
	DDRD=(1<<1);									//Puerto de TX como salida
	UBRRL = ubrr_value;								//Set baud rate
	UBRRH = (ubrr_value>>8); 							
/*
	UBRR=|   Fosc     |	-1
		 | ---------- |
		 | 16* Baud R |
*/
	UCSRB = (1<<TXEN)|(1<<RXEN);		  			//Enable receiver and transmitter 
	UCSRC = (1<<URSEL)|(3<<UCSZ0);					//Set frame format: 8data, 1stop bit, NO parity
}
void USART_TX (unsigned char DATA)
{
	while ( !( UCSRA & (1<<UDRE)) );				/* Wait for empty transmit buffer */
	UDR = DATA;										//Carga de DATO
	UCSRB|=(1<<TXB8)|(1<<TXCIE);					//Enable para ser enviado
}
unsigned char USART_RX (void)
{
	while (!(UCSRA & (1<<RXC)));					/* Wait for data to be received */		
	return UDR;										/* Get and return received data from buffer */
}
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				USART
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/

static int uart_putchar(char c, FILE *stream);

static FILE myUSART = FDEV_SETUP_STREAM(uart_putchar, NULL,
                                             _FDEV_SETUP_WRITE);

static int
 uart_putchar(char c, FILE *stream)
 {

      if (c == '\n')
        uart_putchar('\r', stream);
      loop_until_bit_is_set(UCSRA, UDRE);
      UDR = c;
      return 0;
 }

 void enable_printf_USART (void)
	{
		stdout = &myUSART;
	}
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				recuerda usar "stdout = &myUSART;" antes de usar printf con usart
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/

